<?php
/**
 * Created by PhpStorm.
 * User: dehong
 * Date: 2016/9/13
 * Time: 22:36
 */

// 防止恶意调用
if(!defined('IN_TG')){
    exit('Access Defined!');
}

if(!function_exists('_alert_back')) {
    exit('_alert_back()函数不存在，请检查！');
}

/**
 * _setcookies() 生成登录cookies
 * @access public
 * @param string $_username
 * @param string $_uniqid
 */
function _setcookies($_username,$_uniqid,$_time){
    switch($_time){
        case '0': // 浏览器进程
            setcookie('username',$_username);
            setcookie('uniqid',$_uniqid);
            break;
        case '1': // 一天
            setcookie('username',$_username,time()+86400);
            setcookie('uniqid',$_uniqid,time()+86400);
            break;
        case '2': // 一周
            setcookie('username',$_username,time()+604800);
            setcookie('uniqid',$_uniqid,time()+604800);
            break;
        case '3': // 一月
            setcookie('username',$_username,time()+2592000);
            setcookie('uniqid',$_uniqid,time()+2592000);
            break;
    }
}

/**
 * _check_username() 检测并过滤用户名
 * @access public
 * @param string $_string 受污染的用户名
 * @param int $_min_num 最小位数
 * @param int $_max_num 最大位数
 * @return string 过滤后的用户名
 */
function _check_username($_string,$_min_num,$_max_num){
    // 去掉字符两边的空格
    $_string = trim($_string);

    // 长度小于$_min_num位或者大于$_max_num位
    if(mb_strlen($_string,'utf-8')<$_min_num || mb_strlen($_string,'utf-8')>$_max_num){
        _alert_back('长度不得小于'.$_min_num.'位或者大于'.$_max_num.'位');
    }

    // 限制敏感字符
    $_char_pattern = '/[<>\'\"\ \   ]/';
    if(preg_match($_char_pattern,$_string)){
        _alert_back('用户名不得包含敏感字符！');
    }

    // 将用户名转义输出
    return addslashes($_string);
}

/**
 * _check_password() 验证密码
 * @access public
 * @param string $_first_pass
 * @param int $_min_num
 * @param int $_max_num
 * @return string $_first_pass 返回加密后的密码
 */
function _check_password($_first_pass,$_min_num,$_max_num){
    // 判断密码
    if(strlen($_first_pass) < $_min_num){
        _alert_back('密码不得少于'.$_min_num.'位！');
    }
    if(strlen($_first_pass) > $_max_num){
        _alert_back('密码不得超过'.$_max_num.'位！');
    }
    // 将密码返回
    return sha1($_first_pass);
}

/**
 * _check_time() 转义
 * @param string $_string
 * @return string 转义返回
 */
function _check_time($_string){
    $_time = array('0','1','2','3');
    if(!in_array($_string,$_time)){
        _alert_back('保留方式出错!');
    }
    return $_string;
}